↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
perm_in_ga(Xs, .(X, Ys)) → U3_ga(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
app2_in_agg(.(X, Xs), Ys, .(X, Zs)) → U2_agg(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
U2_agg(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_agg(.(X, Xs), Ys, .(X, Zs))
app2_in_agg([], Ys, Ys) → app2_out_agg([], Ys, Ys)
U3_ga(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_ga(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
U4_ga(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_ga(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa(Xs, .(X, Ys)) → U3_aa(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
U3_aa(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_aa(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U4_aa(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_aa(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_aa(Xs, .(X, Ys))
U5_ga(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_ga(Xs, .(X, Ys))
perm_in_ga([], []) → perm_out_ga([], [])
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
perm_in_ga(Xs, .(X, Ys)) → U3_ga(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
app2_in_agg(.(X, Xs), Ys, .(X, Zs)) → U2_agg(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
U2_agg(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_agg(.(X, Xs), Ys, .(X, Zs))
app2_in_agg([], Ys, Ys) → app2_out_agg([], Ys, Ys)
U3_ga(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_ga(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
U4_ga(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_ga(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa(Xs, .(X, Ys)) → U3_aa(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
U3_aa(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_aa(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U4_aa(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_aa(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_aa(Xs, .(X, Ys))
U5_ga(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_ga(Xs, .(X, Ys))
perm_in_ga([], []) → perm_out_ga([], [])
PERM_IN_GA(Xs, .(X, Ys)) → U3_GA(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
PERM_IN_GA(Xs, .(X, Ys)) → APP2_IN_AGG(X1s, .(X, X2s), Xs)
APP2_IN_AGG(.(X, Xs), Ys, .(X, Zs)) → U2_AGG(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
APP2_IN_AGG(.(X, Xs), Ys, .(X, Zs)) → APP2_IN_AGA(Xs, Ys, Zs)
APP2_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → U2_AGA(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
APP2_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP2_IN_AGA(Xs, Ys, Zs)
U3_GA(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_GA(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U3_GA(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → APP1_IN_GAA(X1s, X2s, Zs)
APP1_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → U1_GAA(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
APP1_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → APP1_IN_AAA(Xs, Ys, Zs)
APP1_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → U1_AAA(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
APP1_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP1_IN_AAA(Xs, Ys, Zs)
U4_GA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_GA(Xs, X, Ys, perm_in_aa(Zs, Ys))
U4_GA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → PERM_IN_AA(Zs, Ys)
PERM_IN_AA(Xs, .(X, Ys)) → U3_AA(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
PERM_IN_AA(Xs, .(X, Ys)) → APP2_IN_AGA(X1s, .(X, X2s), Xs)
U3_AA(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_AA(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U3_AA(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → APP1_IN_GAA(X1s, X2s, Zs)
U4_AA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_AA(Xs, X, Ys, perm_in_aa(Zs, Ys))
U4_AA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → PERM_IN_AA(Zs, Ys)
perm_in_ga(Xs, .(X, Ys)) → U3_ga(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
app2_in_agg(.(X, Xs), Ys, .(X, Zs)) → U2_agg(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
U2_agg(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_agg(.(X, Xs), Ys, .(X, Zs))
app2_in_agg([], Ys, Ys) → app2_out_agg([], Ys, Ys)
U3_ga(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_ga(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
U4_ga(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_ga(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa(Xs, .(X, Ys)) → U3_aa(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
U3_aa(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_aa(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U4_aa(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_aa(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_aa(Xs, .(X, Ys))
U5_ga(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_ga(Xs, .(X, Ys))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
PERM_IN_GA(Xs, .(X, Ys)) → U3_GA(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
PERM_IN_GA(Xs, .(X, Ys)) → APP2_IN_AGG(X1s, .(X, X2s), Xs)
APP2_IN_AGG(.(X, Xs), Ys, .(X, Zs)) → U2_AGG(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
APP2_IN_AGG(.(X, Xs), Ys, .(X, Zs)) → APP2_IN_AGA(Xs, Ys, Zs)
APP2_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → U2_AGA(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
APP2_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP2_IN_AGA(Xs, Ys, Zs)
U3_GA(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_GA(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U3_GA(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → APP1_IN_GAA(X1s, X2s, Zs)
APP1_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → U1_GAA(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
APP1_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → APP1_IN_AAA(Xs, Ys, Zs)
APP1_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → U1_AAA(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
APP1_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP1_IN_AAA(Xs, Ys, Zs)
U4_GA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_GA(Xs, X, Ys, perm_in_aa(Zs, Ys))
U4_GA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → PERM_IN_AA(Zs, Ys)
PERM_IN_AA(Xs, .(X, Ys)) → U3_AA(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
PERM_IN_AA(Xs, .(X, Ys)) → APP2_IN_AGA(X1s, .(X, X2s), Xs)
U3_AA(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_AA(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U3_AA(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → APP1_IN_GAA(X1s, X2s, Zs)
U4_AA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_AA(Xs, X, Ys, perm_in_aa(Zs, Ys))
U4_AA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → PERM_IN_AA(Zs, Ys)
perm_in_ga(Xs, .(X, Ys)) → U3_ga(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
app2_in_agg(.(X, Xs), Ys, .(X, Zs)) → U2_agg(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
U2_agg(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_agg(.(X, Xs), Ys, .(X, Zs))
app2_in_agg([], Ys, Ys) → app2_out_agg([], Ys, Ys)
U3_ga(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_ga(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
U4_ga(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_ga(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa(Xs, .(X, Ys)) → U3_aa(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
U3_aa(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_aa(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U4_aa(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_aa(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_aa(Xs, .(X, Ys))
U5_ga(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_ga(Xs, .(X, Ys))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
APP1_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP1_IN_AAA(Xs, Ys, Zs)
perm_in_ga(Xs, .(X, Ys)) → U3_ga(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
app2_in_agg(.(X, Xs), Ys, .(X, Zs)) → U2_agg(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
U2_agg(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_agg(.(X, Xs), Ys, .(X, Zs))
app2_in_agg([], Ys, Ys) → app2_out_agg([], Ys, Ys)
U3_ga(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_ga(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
U4_ga(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_ga(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa(Xs, .(X, Ys)) → U3_aa(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
U3_aa(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_aa(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U4_aa(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_aa(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_aa(Xs, .(X, Ys))
U5_ga(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_ga(Xs, .(X, Ys))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
APP1_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP1_IN_AAA(Xs, Ys, Zs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
APP1_IN_AAA → APP1_IN_AAA
APP1_IN_AAA → APP1_IN_AAA
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PrologToPiTRSProof
APP2_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP2_IN_AGA(Xs, Ys, Zs)
perm_in_ga(Xs, .(X, Ys)) → U3_ga(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
app2_in_agg(.(X, Xs), Ys, .(X, Zs)) → U2_agg(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
U2_agg(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_agg(.(X, Xs), Ys, .(X, Zs))
app2_in_agg([], Ys, Ys) → app2_out_agg([], Ys, Ys)
U3_ga(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_ga(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
U4_ga(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_ga(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa(Xs, .(X, Ys)) → U3_aa(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
U3_aa(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_aa(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U4_aa(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_aa(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_aa(Xs, .(X, Ys))
U5_ga(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_ga(Xs, .(X, Ys))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PrologToPiTRSProof
APP2_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP2_IN_AGA(Xs, Ys, Zs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PrologToPiTRSProof
APP2_IN_AGA(Ys) → APP2_IN_AGA(Ys)
APP2_IN_AGA(Ys) → APP2_IN_AGA(Ys)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
U4_AA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → PERM_IN_AA(Zs, Ys)
U3_AA(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_AA(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
PERM_IN_AA(Xs, .(X, Ys)) → U3_AA(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
perm_in_ga(Xs, .(X, Ys)) → U3_ga(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
app2_in_agg(.(X, Xs), Ys, .(X, Zs)) → U2_agg(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
U2_agg(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_agg(.(X, Xs), Ys, .(X, Zs))
app2_in_agg([], Ys, Ys) → app2_out_agg([], Ys, Ys)
U3_ga(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_ga(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
U4_ga(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_ga(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa(Xs, .(X, Ys)) → U3_aa(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
U3_aa(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_aa(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U4_aa(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_aa(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_aa(Xs, .(X, Ys))
U5_ga(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_ga(Xs, .(X, Ys))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
U4_AA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → PERM_IN_AA(Zs, Ys)
U3_AA(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_AA(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
PERM_IN_AA(Xs, .(X, Ys)) → U3_AA(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ PrologToPiTRSProof
U3_AA(app2_out_aga(X1s, Xs)) → U4_AA(Xs, app1_in_gaa(X1s))
PERM_IN_AA → U3_AA(app2_in_aga(.))
U4_AA(Xs, app1_out_gaa) → PERM_IN_AA
app1_in_gaa(.) → U1_gaa(app1_in_aaa)
app1_in_gaa([]) → app1_out_gaa
app2_in_aga(Ys) → U2_aga(app2_in_aga(Ys))
app2_in_aga(Ys) → app2_out_aga([], Ys)
U1_gaa(app1_out_aaa(Xs)) → app1_out_gaa
U2_aga(app2_out_aga(Xs, Zs)) → app2_out_aga(., .)
app1_in_aaa → U1_aaa(app1_in_aaa)
app1_in_aaa → app1_out_aaa([])
U1_aaa(app1_out_aaa(Xs)) → app1_out_aaa(.)
app1_in_gaa(x0)
app2_in_aga(x0)
U1_gaa(x0)
U2_aga(x0)
app1_in_aaa
U1_aaa(x0)
U3_AA(app2_out_aga([], y1)) → U4_AA(y1, app1_out_gaa)
U3_AA(app2_out_aga(., y1)) → U4_AA(y1, U1_gaa(app1_in_aaa))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
U3_AA(app2_out_aga([], y1)) → U4_AA(y1, app1_out_gaa)
U4_AA(Xs, app1_out_gaa) → PERM_IN_AA
PERM_IN_AA → U3_AA(app2_in_aga(.))
U3_AA(app2_out_aga(., y1)) → U4_AA(y1, U1_gaa(app1_in_aaa))
app1_in_gaa(.) → U1_gaa(app1_in_aaa)
app1_in_gaa([]) → app1_out_gaa
app2_in_aga(Ys) → U2_aga(app2_in_aga(Ys))
app2_in_aga(Ys) → app2_out_aga([], Ys)
U1_gaa(app1_out_aaa(Xs)) → app1_out_gaa
U2_aga(app2_out_aga(Xs, Zs)) → app2_out_aga(., .)
app1_in_aaa → U1_aaa(app1_in_aaa)
app1_in_aaa → app1_out_aaa([])
U1_aaa(app1_out_aaa(Xs)) → app1_out_aaa(.)
app1_in_gaa(x0)
app2_in_aga(x0)
U1_gaa(x0)
U2_aga(x0)
app1_in_aaa
U1_aaa(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ PrologToPiTRSProof
U3_AA(app2_out_aga([], y1)) → U4_AA(y1, app1_out_gaa)
PERM_IN_AA → U3_AA(app2_in_aga(.))
U4_AA(Xs, app1_out_gaa) → PERM_IN_AA
U3_AA(app2_out_aga(., y1)) → U4_AA(y1, U1_gaa(app1_in_aaa))
app1_in_aaa → U1_aaa(app1_in_aaa)
app1_in_aaa → app1_out_aaa([])
U1_gaa(app1_out_aaa(Xs)) → app1_out_gaa
U1_aaa(app1_out_aaa(Xs)) → app1_out_aaa(.)
app2_in_aga(Ys) → U2_aga(app2_in_aga(Ys))
app2_in_aga(Ys) → app2_out_aga([], Ys)
U2_aga(app2_out_aga(Xs, Zs)) → app2_out_aga(., .)
app1_in_gaa(x0)
app2_in_aga(x0)
U1_gaa(x0)
U2_aga(x0)
app1_in_aaa
U1_aaa(x0)
app1_in_gaa(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ PrologToPiTRSProof
U3_AA(app2_out_aga([], y1)) → U4_AA(y1, app1_out_gaa)
U4_AA(Xs, app1_out_gaa) → PERM_IN_AA
PERM_IN_AA → U3_AA(app2_in_aga(.))
U3_AA(app2_out_aga(., y1)) → U4_AA(y1, U1_gaa(app1_in_aaa))
app1_in_aaa → U1_aaa(app1_in_aaa)
app1_in_aaa → app1_out_aaa([])
U1_gaa(app1_out_aaa(Xs)) → app1_out_gaa
U1_aaa(app1_out_aaa(Xs)) → app1_out_aaa(.)
app2_in_aga(Ys) → U2_aga(app2_in_aga(Ys))
app2_in_aga(Ys) → app2_out_aga([], Ys)
U2_aga(app2_out_aga(Xs, Zs)) → app2_out_aga(., .)
app2_in_aga(x0)
U1_gaa(x0)
U2_aga(x0)
app1_in_aaa
U1_aaa(x0)
PERM_IN_AA → U3_AA(app2_out_aga([], .))
PERM_IN_AA → U3_AA(U2_aga(app2_in_aga(.)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ NonTerminationProof
↳ PrologToPiTRSProof
U3_AA(app2_out_aga([], y1)) → U4_AA(y1, app1_out_gaa)
U4_AA(Xs, app1_out_gaa) → PERM_IN_AA
PERM_IN_AA → U3_AA(U2_aga(app2_in_aga(.)))
PERM_IN_AA → U3_AA(app2_out_aga([], .))
U3_AA(app2_out_aga(., y1)) → U4_AA(y1, U1_gaa(app1_in_aaa))
app1_in_aaa → U1_aaa(app1_in_aaa)
app1_in_aaa → app1_out_aaa([])
U1_gaa(app1_out_aaa(Xs)) → app1_out_gaa
U1_aaa(app1_out_aaa(Xs)) → app1_out_aaa(.)
app2_in_aga(Ys) → U2_aga(app2_in_aga(Ys))
app2_in_aga(Ys) → app2_out_aga([], Ys)
U2_aga(app2_out_aga(Xs, Zs)) → app2_out_aga(., .)
app2_in_aga(x0)
U1_gaa(x0)
U2_aga(x0)
app1_in_aaa
U1_aaa(x0)
U3_AA(app2_out_aga([], y1)) → U4_AA(y1, app1_out_gaa)
U4_AA(Xs, app1_out_gaa) → PERM_IN_AA
PERM_IN_AA → U3_AA(U2_aga(app2_in_aga(.)))
PERM_IN_AA → U3_AA(app2_out_aga([], .))
U3_AA(app2_out_aga(., y1)) → U4_AA(y1, U1_gaa(app1_in_aaa))
app1_in_aaa → U1_aaa(app1_in_aaa)
app1_in_aaa → app1_out_aaa([])
U1_gaa(app1_out_aaa(Xs)) → app1_out_gaa
U1_aaa(app1_out_aaa(Xs)) → app1_out_aaa(.)
app2_in_aga(Ys) → U2_aga(app2_in_aga(Ys))
app2_in_aga(Ys) → app2_out_aga([], Ys)
U2_aga(app2_out_aga(Xs, Zs)) → app2_out_aga(., .)
perm_in_ga(Xs, .(X, Ys)) → U3_ga(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
app2_in_agg(.(X, Xs), Ys, .(X, Zs)) → U2_agg(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
U2_agg(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_agg(.(X, Xs), Ys, .(X, Zs))
app2_in_agg([], Ys, Ys) → app2_out_agg([], Ys, Ys)
U3_ga(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_ga(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
U4_ga(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_ga(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa(Xs, .(X, Ys)) → U3_aa(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
U3_aa(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_aa(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U4_aa(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_aa(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_aa(Xs, .(X, Ys))
U5_ga(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_ga(Xs, .(X, Ys))
perm_in_ga([], []) → perm_out_ga([], [])
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
perm_in_ga(Xs, .(X, Ys)) → U3_ga(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
app2_in_agg(.(X, Xs), Ys, .(X, Zs)) → U2_agg(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
U2_agg(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_agg(.(X, Xs), Ys, .(X, Zs))
app2_in_agg([], Ys, Ys) → app2_out_agg([], Ys, Ys)
U3_ga(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_ga(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
U4_ga(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_ga(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa(Xs, .(X, Ys)) → U3_aa(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
U3_aa(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_aa(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U4_aa(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_aa(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_aa(Xs, .(X, Ys))
U5_ga(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_ga(Xs, .(X, Ys))
perm_in_ga([], []) → perm_out_ga([], [])
PERM_IN_GA(Xs, .(X, Ys)) → U3_GA(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
PERM_IN_GA(Xs, .(X, Ys)) → APP2_IN_AGG(X1s, .(X, X2s), Xs)
APP2_IN_AGG(.(X, Xs), Ys, .(X, Zs)) → U2_AGG(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
APP2_IN_AGG(.(X, Xs), Ys, .(X, Zs)) → APP2_IN_AGA(Xs, Ys, Zs)
APP2_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → U2_AGA(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
APP2_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP2_IN_AGA(Xs, Ys, Zs)
U3_GA(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_GA(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U3_GA(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → APP1_IN_GAA(X1s, X2s, Zs)
APP1_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → U1_GAA(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
APP1_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → APP1_IN_AAA(Xs, Ys, Zs)
APP1_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → U1_AAA(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
APP1_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP1_IN_AAA(Xs, Ys, Zs)
U4_GA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_GA(Xs, X, Ys, perm_in_aa(Zs, Ys))
U4_GA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → PERM_IN_AA(Zs, Ys)
PERM_IN_AA(Xs, .(X, Ys)) → U3_AA(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
PERM_IN_AA(Xs, .(X, Ys)) → APP2_IN_AGA(X1s, .(X, X2s), Xs)
U3_AA(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_AA(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U3_AA(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → APP1_IN_GAA(X1s, X2s, Zs)
U4_AA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_AA(Xs, X, Ys, perm_in_aa(Zs, Ys))
U4_AA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → PERM_IN_AA(Zs, Ys)
perm_in_ga(Xs, .(X, Ys)) → U3_ga(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
app2_in_agg(.(X, Xs), Ys, .(X, Zs)) → U2_agg(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
U2_agg(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_agg(.(X, Xs), Ys, .(X, Zs))
app2_in_agg([], Ys, Ys) → app2_out_agg([], Ys, Ys)
U3_ga(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_ga(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
U4_ga(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_ga(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa(Xs, .(X, Ys)) → U3_aa(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
U3_aa(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_aa(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U4_aa(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_aa(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_aa(Xs, .(X, Ys))
U5_ga(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_ga(Xs, .(X, Ys))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
PERM_IN_GA(Xs, .(X, Ys)) → U3_GA(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
PERM_IN_GA(Xs, .(X, Ys)) → APP2_IN_AGG(X1s, .(X, X2s), Xs)
APP2_IN_AGG(.(X, Xs), Ys, .(X, Zs)) → U2_AGG(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
APP2_IN_AGG(.(X, Xs), Ys, .(X, Zs)) → APP2_IN_AGA(Xs, Ys, Zs)
APP2_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → U2_AGA(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
APP2_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP2_IN_AGA(Xs, Ys, Zs)
U3_GA(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_GA(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U3_GA(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → APP1_IN_GAA(X1s, X2s, Zs)
APP1_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → U1_GAA(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
APP1_IN_GAA(.(X, Xs), Ys, .(X, Zs)) → APP1_IN_AAA(Xs, Ys, Zs)
APP1_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → U1_AAA(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
APP1_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP1_IN_AAA(Xs, Ys, Zs)
U4_GA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_GA(Xs, X, Ys, perm_in_aa(Zs, Ys))
U4_GA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → PERM_IN_AA(Zs, Ys)
PERM_IN_AA(Xs, .(X, Ys)) → U3_AA(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
PERM_IN_AA(Xs, .(X, Ys)) → APP2_IN_AGA(X1s, .(X, X2s), Xs)
U3_AA(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_AA(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U3_AA(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → APP1_IN_GAA(X1s, X2s, Zs)
U4_AA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_AA(Xs, X, Ys, perm_in_aa(Zs, Ys))
U4_AA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → PERM_IN_AA(Zs, Ys)
perm_in_ga(Xs, .(X, Ys)) → U3_ga(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
app2_in_agg(.(X, Xs), Ys, .(X, Zs)) → U2_agg(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
U2_agg(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_agg(.(X, Xs), Ys, .(X, Zs))
app2_in_agg([], Ys, Ys) → app2_out_agg([], Ys, Ys)
U3_ga(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_ga(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
U4_ga(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_ga(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa(Xs, .(X, Ys)) → U3_aa(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
U3_aa(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_aa(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U4_aa(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_aa(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_aa(Xs, .(X, Ys))
U5_ga(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_ga(Xs, .(X, Ys))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
APP1_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP1_IN_AAA(Xs, Ys, Zs)
perm_in_ga(Xs, .(X, Ys)) → U3_ga(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
app2_in_agg(.(X, Xs), Ys, .(X, Zs)) → U2_agg(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
U2_agg(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_agg(.(X, Xs), Ys, .(X, Zs))
app2_in_agg([], Ys, Ys) → app2_out_agg([], Ys, Ys)
U3_ga(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_ga(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
U4_ga(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_ga(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa(Xs, .(X, Ys)) → U3_aa(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
U3_aa(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_aa(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U4_aa(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_aa(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_aa(Xs, .(X, Ys))
U5_ga(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_ga(Xs, .(X, Ys))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
APP1_IN_AAA(.(X, Xs), Ys, .(X, Zs)) → APP1_IN_AAA(Xs, Ys, Zs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
APP1_IN_AAA → APP1_IN_AAA
APP1_IN_AAA → APP1_IN_AAA
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
APP2_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP2_IN_AGA(Xs, Ys, Zs)
perm_in_ga(Xs, .(X, Ys)) → U3_ga(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
app2_in_agg(.(X, Xs), Ys, .(X, Zs)) → U2_agg(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
U2_agg(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_agg(.(X, Xs), Ys, .(X, Zs))
app2_in_agg([], Ys, Ys) → app2_out_agg([], Ys, Ys)
U3_ga(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_ga(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
U4_ga(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_ga(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa(Xs, .(X, Ys)) → U3_aa(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
U3_aa(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_aa(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U4_aa(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_aa(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_aa(Xs, .(X, Ys))
U5_ga(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_ga(Xs, .(X, Ys))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
APP2_IN_AGA(.(X, Xs), Ys, .(X, Zs)) → APP2_IN_AGA(Xs, Ys, Zs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
APP2_IN_AGA(Ys) → APP2_IN_AGA(Ys)
APP2_IN_AGA(Ys) → APP2_IN_AGA(Ys)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
U4_AA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → PERM_IN_AA(Zs, Ys)
U3_AA(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_AA(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
PERM_IN_AA(Xs, .(X, Ys)) → U3_AA(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
perm_in_ga(Xs, .(X, Ys)) → U3_ga(Xs, X, Ys, app2_in_agg(X1s, .(X, X2s), Xs))
app2_in_agg(.(X, Xs), Ys, .(X, Zs)) → U2_agg(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
U2_agg(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_agg(.(X, Xs), Ys, .(X, Zs))
app2_in_agg([], Ys, Ys) → app2_out_agg([], Ys, Ys)
U3_ga(Xs, X, Ys, app2_out_agg(X1s, .(X, X2s), Xs)) → U4_ga(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
U4_ga(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_ga(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa(Xs, .(X, Ys)) → U3_aa(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
U3_aa(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_aa(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
U4_aa(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → U5_aa(Xs, X, Ys, perm_in_aa(Zs, Ys))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_aa(Xs, .(X, Ys))
U5_ga(Xs, X, Ys, perm_out_aa(Zs, Ys)) → perm_out_ga(Xs, .(X, Ys))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
U4_AA(Xs, X, Ys, X1s, X2s, app1_out_gaa(X1s, X2s, Zs)) → PERM_IN_AA(Zs, Ys)
U3_AA(Xs, X, Ys, app2_out_aga(X1s, .(X, X2s), Xs)) → U4_AA(Xs, X, Ys, X1s, X2s, app1_in_gaa(X1s, X2s, Zs))
PERM_IN_AA(Xs, .(X, Ys)) → U3_AA(Xs, X, Ys, app2_in_aga(X1s, .(X, X2s), Xs))
app1_in_gaa(.(X, Xs), Ys, .(X, Zs)) → U1_gaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_gaa([], Ys, Ys) → app1_out_gaa([], Ys, Ys)
app2_in_aga(.(X, Xs), Ys, .(X, Zs)) → U2_aga(X, Xs, Ys, Zs, app2_in_aga(Xs, Ys, Zs))
app2_in_aga([], Ys, Ys) → app2_out_aga([], Ys, Ys)
U1_gaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_gaa(.(X, Xs), Ys, .(X, Zs))
U2_aga(X, Xs, Ys, Zs, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(.(X, Xs), Ys, .(X, Zs))
app1_in_aaa(.(X, Xs), Ys, .(X, Zs)) → U1_aaa(X, Xs, Ys, Zs, app1_in_aaa(Xs, Ys, Zs))
app1_in_aaa([], Ys, Ys) → app1_out_aaa([], Ys, Ys)
U1_aaa(X, Xs, Ys, Zs, app1_out_aaa(Xs, Ys, Zs)) → app1_out_aaa(.(X, Xs), Ys, .(X, Zs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
U4_AA(Xs, app1_out_gaa(X1s)) → PERM_IN_AA
U3_AA(app2_out_aga(X1s, ., Xs)) → U4_AA(Xs, app1_in_gaa(X1s))
PERM_IN_AA → U3_AA(app2_in_aga(.))
app1_in_gaa(.) → U1_gaa(app1_in_aaa)
app1_in_gaa([]) → app1_out_gaa([])
app2_in_aga(Ys) → U2_aga(Ys, app2_in_aga(Ys))
app2_in_aga(Ys) → app2_out_aga([], Ys, Ys)
U1_gaa(app1_out_aaa(Xs)) → app1_out_gaa(.)
U2_aga(Ys, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(., Ys, .)
app1_in_aaa → U1_aaa(app1_in_aaa)
app1_in_aaa → app1_out_aaa([])
U1_aaa(app1_out_aaa(Xs)) → app1_out_aaa(.)
app1_in_gaa(x0)
app2_in_aga(x0)
U1_gaa(x0)
U2_aga(x0, x1)
app1_in_aaa
U1_aaa(x0)
U3_AA(app2_out_aga([], ., y1)) → U4_AA(y1, app1_out_gaa([]))
U3_AA(app2_out_aga(., ., y1)) → U4_AA(y1, U1_gaa(app1_in_aaa))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
U4_AA(Xs, app1_out_gaa(X1s)) → PERM_IN_AA
U3_AA(app2_out_aga(., ., y1)) → U4_AA(y1, U1_gaa(app1_in_aaa))
U3_AA(app2_out_aga([], ., y1)) → U4_AA(y1, app1_out_gaa([]))
PERM_IN_AA → U3_AA(app2_in_aga(.))
app1_in_gaa(.) → U1_gaa(app1_in_aaa)
app1_in_gaa([]) → app1_out_gaa([])
app2_in_aga(Ys) → U2_aga(Ys, app2_in_aga(Ys))
app2_in_aga(Ys) → app2_out_aga([], Ys, Ys)
U1_gaa(app1_out_aaa(Xs)) → app1_out_gaa(.)
U2_aga(Ys, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(., Ys, .)
app1_in_aaa → U1_aaa(app1_in_aaa)
app1_in_aaa → app1_out_aaa([])
U1_aaa(app1_out_aaa(Xs)) → app1_out_aaa(.)
app1_in_gaa(x0)
app2_in_aga(x0)
U1_gaa(x0)
U2_aga(x0, x1)
app1_in_aaa
U1_aaa(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
U4_AA(Xs, app1_out_gaa(X1s)) → PERM_IN_AA
U3_AA(app2_out_aga(., ., y1)) → U4_AA(y1, U1_gaa(app1_in_aaa))
U3_AA(app2_out_aga([], ., y1)) → U4_AA(y1, app1_out_gaa([]))
PERM_IN_AA → U3_AA(app2_in_aga(.))
app1_in_aaa → U1_aaa(app1_in_aaa)
app1_in_aaa → app1_out_aaa([])
U1_gaa(app1_out_aaa(Xs)) → app1_out_gaa(.)
U1_aaa(app1_out_aaa(Xs)) → app1_out_aaa(.)
app2_in_aga(Ys) → U2_aga(Ys, app2_in_aga(Ys))
app2_in_aga(Ys) → app2_out_aga([], Ys, Ys)
U2_aga(Ys, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(., Ys, .)
app1_in_gaa(x0)
app2_in_aga(x0)
U1_gaa(x0)
U2_aga(x0, x1)
app1_in_aaa
U1_aaa(x0)
app1_in_gaa(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
U4_AA(Xs, app1_out_gaa(X1s)) → PERM_IN_AA
U3_AA(app2_out_aga([], ., y1)) → U4_AA(y1, app1_out_gaa([]))
U3_AA(app2_out_aga(., ., y1)) → U4_AA(y1, U1_gaa(app1_in_aaa))
PERM_IN_AA → U3_AA(app2_in_aga(.))
app1_in_aaa → U1_aaa(app1_in_aaa)
app1_in_aaa → app1_out_aaa([])
U1_gaa(app1_out_aaa(Xs)) → app1_out_gaa(.)
U1_aaa(app1_out_aaa(Xs)) → app1_out_aaa(.)
app2_in_aga(Ys) → U2_aga(Ys, app2_in_aga(Ys))
app2_in_aga(Ys) → app2_out_aga([], Ys, Ys)
U2_aga(Ys, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(., Ys, .)
app2_in_aga(x0)
U1_gaa(x0)
U2_aga(x0, x1)
app1_in_aaa
U1_aaa(x0)
PERM_IN_AA → U3_AA(app2_out_aga([], ., .))
PERM_IN_AA → U3_AA(U2_aga(., app2_in_aga(.)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Narrowing
↳ QDP
↳ NonTerminationProof
U4_AA(Xs, app1_out_gaa(X1s)) → PERM_IN_AA
PERM_IN_AA → U3_AA(app2_out_aga([], ., .))
U3_AA(app2_out_aga(., ., y1)) → U4_AA(y1, U1_gaa(app1_in_aaa))
U3_AA(app2_out_aga([], ., y1)) → U4_AA(y1, app1_out_gaa([]))
PERM_IN_AA → U3_AA(U2_aga(., app2_in_aga(.)))
app1_in_aaa → U1_aaa(app1_in_aaa)
app1_in_aaa → app1_out_aaa([])
U1_gaa(app1_out_aaa(Xs)) → app1_out_gaa(.)
U1_aaa(app1_out_aaa(Xs)) → app1_out_aaa(.)
app2_in_aga(Ys) → U2_aga(Ys, app2_in_aga(Ys))
app2_in_aga(Ys) → app2_out_aga([], Ys, Ys)
U2_aga(Ys, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(., Ys, .)
app2_in_aga(x0)
U1_gaa(x0)
U2_aga(x0, x1)
app1_in_aaa
U1_aaa(x0)
U4_AA(Xs, app1_out_gaa(X1s)) → PERM_IN_AA
PERM_IN_AA → U3_AA(app2_out_aga([], ., .))
U3_AA(app2_out_aga(., ., y1)) → U4_AA(y1, U1_gaa(app1_in_aaa))
U3_AA(app2_out_aga([], ., y1)) → U4_AA(y1, app1_out_gaa([]))
PERM_IN_AA → U3_AA(U2_aga(., app2_in_aga(.)))
app1_in_aaa → U1_aaa(app1_in_aaa)
app1_in_aaa → app1_out_aaa([])
U1_gaa(app1_out_aaa(Xs)) → app1_out_gaa(.)
U1_aaa(app1_out_aaa(Xs)) → app1_out_aaa(.)
app2_in_aga(Ys) → U2_aga(Ys, app2_in_aga(Ys))
app2_in_aga(Ys) → app2_out_aga([], Ys, Ys)
U2_aga(Ys, app2_out_aga(Xs, Ys, Zs)) → app2_out_aga(., Ys, .)